package cn.elead.chaos.framework.properties;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

import lombok.Getter;
import lombok.Setter;

/**
 * Epom项目相关配置
 *
 * @author luopeng
 */
@Setter
@Getter
@ConfigurationProperties(prefix = ChaosProperties.PREFIX)
public class ChaosProperties {

	public static final String PREFIX = "chaos";

	/** 项目名称 */
	private String name;

	/** 版本 */
	private String version;

	/** 版权年份 */
	private String copyrightYear;
	
	/** 域名 */
	private String host;

	/** 实例演示开关 */
	@NestedConfigurationProperty
	private Demo demo = new Demo();

	/** 路径 */
	@NestedConfigurationProperty
	private Path path = new Path();

	/** 获取地址开关 */
	@NestedConfigurationProperty
	private Address address = new Address();

	/** 用户密码配置 */
	@NestedConfigurationProperty
	private Password pwd = new Password();

	/** 生成代码配置 */
	@NestedConfigurationProperty
	private Generator generator = new Generator();

	/** 告警通知Email配置 */
	@NestedConfigurationProperty
	private Email email = new Email();

	/** Xss配置 */
	@NestedConfigurationProperty
	private Xss xss = new Xss();

	/** 跨域配置 */
	@NestedConfigurationProperty
	private Cross cross = new Cross();

	/** 枚举配置 */
	@NestedConfigurationProperty
	private EnumScan enumScan = new EnumScan();

	/** 安全配置 */
	@NestedConfigurationProperty
	private Security security = new Security();

	/** 单点配置 */
	@NestedConfigurationProperty
	private Sso sso = new Sso();
	
	/** 远程服务配置 */
	@NestedConfigurationProperty
	private Remote remote = new Remote();

}
